<img src="https://wkq-img.oss-cn-chengdu.aliyuncs.com/20241213004113.png"/>



当系统开发完成并已经全部测试以后，就到了正式发布上线的阶段。通常在测试阶段还会包括预发测试，预发环境一般都是单台的数据库和单台的服务，所以正式上线时需要申请新的资源，并配置相应信息以及初始化服务和数据。


## 环境
通常在测试人员发出系统测试通过后，研发人员会在测试的邮件上，发送一个系统上线通知。这样所有和系统相关的人员：研发、产品、运营、业务，都会做属于自己的工作。配合的研发人员会进行提前的接口发布提供服务、前端会等待后端的接口上线、运营会配置好活动以及等待新系统上线后的配置、业务人员会做一些计划。而自己内部的研发则需要把所有上线时需要准备好的环境处理完毕，等待系统开发上线。
## 资源
在系统部署阶段，一般公司内部可能会因为系统的使用范围有不同的上线标准，可能有些是手动发布，有些是服务上云弹性发布。那么这些手动发布的系统一般是基于 Jenkins 实现的部署工具，上线发布的过程基本也类似，可以半自动化发布，一台或者多台服务部署。部署的过程需要特别注意：日志打印的信息，RPC接口挂载情况，外部调用链接情况，指定IP调用的返回情况等，当所有你需要验证的功能都完毕后，再逐步选中其他服务进行20%、30%这样的量进行发布上线。
## 监控


系统发布完成以后还需要进行监控的配置，比如：TP99、TP999、QPS、TPS、可用率、响应时长、负载、IO、网络、慢查询、事务、连接数等等，都需要从你的监控中有所体现，并能及时把报警信息推送出来。可能你听过一些类似于 Dapper 的非入侵全链路监控，它们是基于字节码插桩技术实现的，可以在性能损耗 1% 的范围进行间隔采集系统运行情况，并实时展示系统运行监控状况。另外除了系统监控以外，还有数据库监控、网络监控、应用实例监控等等，这些监控系统的配合使用，来保证监控的运行。

